package presentation;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import dao.EmpleadoDAO;

import model.Empleado;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	public EmpleadoDAO empleadoService = null;
	
	@Override
	public void init(ServletConfig config) {
		WebApplicationContext context = WebApplicationContextUtils
				.getRequiredWebApplicationContext(config.getServletContext());
	
		this.empleadoService = (EmpleadoDAO) context.getBean(EmpleadoDAO.class);
	}
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
       
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.getSession().setAttribute("MensajeIndice", null);

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		List<Empleado> usuarios = this.empleadoService.getAll();
		String mensaje = null;
		boolean usuario_existente = false;
		try{
			for (Empleado usuario:usuarios){				
				if (usuario.getUsuario().equals(request.getParameter("inputUsuario"))){
					usuario_existente = true;
					if (usuario.getPassword().equals(request.getParameter("inputPassword"))){
						request.getSession().setAttribute("UsuarioLogeado", usuario);
						
					}
					else{
						mensaje =  "Password incorrecta.";
					}
				}
			}
			if (!usuario_existente)mensaje =  "Usuario inexistente.";
		}
		catch(Exception e){
			mensaje =  "Datos incorrectos.";
		}

		
		
		
		request.getSession().setAttribute("MensajeIndice", mensaje);

		response.sendRedirect("index.jsp");

	}

}
